package exception;

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class ExceptionDemo2 {
    public static void main(String[] args) throws ParseException {
        method1();  // 此时调用者也没有处理，会交给虚拟机处理
        method2(); //还是继续交给调用者处理,而main方法的调用者是虚拟机还是会采取虚拟机默认处理异常的方法
    }

    // 告诉调用者，调用该方法有可能会出现这样的异常
    // 如果方法中没有出现异常则正常运行
    // 如果方法中真的出现了异常，则将异常交给调用者处理
    // 如果声明的异常的一个运行时的异常，那么声明的代码可以省略
    // 空指针异常
    private static void method1() throws NullPointerException {
        int[] arr = null;
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

    // 告诉调用者，调用该方法有可能会出现这样的异常
    // 如果声明的异常是一个编译时的异常，那么声明的代码必须手动写出
    // 模式解析异常
    private static void method2() throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        sdf.parse("2024-1月1日");  // ParseException 模式解析异常
    }
}
